package com.skilltrack.enrol.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.skilltrack.enrol.model.po.CourseTeacher;

import java.util.List;

/**
 * <p>
 * 课程-教师关系表 服务类
 * </p>
 *
 * @author itcast
 * @since 2025-03-04
 */
public interface CourseTeacherService extends IService<CourseTeacher> {



    /**
     * 根据课程ID查询课程教师列表
     *
     * @param id 课程ID，用于指定查询的课程
     * @return 返回一个CourseTeacher对象列表，表示该课程下的所有教师信息
     */
    List<CourseTeacher> queryCourseTeacherList(Long id);


    /**
     * 保存课程教师信息
     *
     * 该方法用于将课程教师信息保存到数据库中通过传入CourseTeacher对象，方法将处理该对象的持久化存储
     * 如果是新建课程教师关系，将执行插入操作；如果是更新现有课程教师信息，则执行更新操作
     *
     * @param courseTeacher 要保存的课程教师对象，包含课程教师的相关信息
     * @return 返回保存后的课程教师对象，通常包含更新后的属性，如数据库生成的ID等
     */
    CourseTeacher saveCourseTeacher(CourseTeacher courseTeacher);

    /**
     * 删除课程教师信息
     *
     * 该方法用于删除指定课程ID和教师ID的课程教师信息，通过传入的参数courseId和teacherId，方法将删除该课程教师关系
     *
     * @param courseId 课程ID，用于指定要删除的课程
     * @param teacherId 教师ID，用于指定要删除的教师
     */
    void deleteCourseTeacher(Long courseId, Long teacherId);
}
